/**
 * \class IExpVisitable  IExpVisitable.h <AbsSyn/IExpVisitable.h>
 *
 *
 *  Created on: 31 mar 2011
 *      @author: calle
 *
 * IExpVisitable is an interface for a visitor pattern
 * This class defines the visitor interface.
 *
 * \ingroup Interfaces
 *
 */

#ifndef IEXPVISITABLE_H_
#define IEXPVISITABLE_H_

#include <Interfaces/IExpVisitor.h>

class IExpVisitable {

public:
	virtual ~IExpVisitable(){};

	/**
	 * \brief accept method
	 *
	 * The accept method will be used for the visitor pattern.
	 * The visitor will call this method and in return this class
	 * will be provided back. See visitor pattern.
	 *
	 * @param v
	 */
	virtual void accept(IExpVisitor *v) =0;

};

#endif /* IEXPVISITABLE_H_ */
